perm filename LET.PUB[D,LES] blob sn#414731 filedate 1979-02-02 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.<< ∂TYP date $ addressee $ from $ subject ∞
C00012 00003	.at "∂AIL" data "∞" ⊂
C00018 00004	.going←0
C00022 ENDMK
C⊗;
.<< ∂TYP date $ addressee $ from $ subject ∞
. TYP = AIL for AI Lab letter
.       CSL for CS letter
.       AIM for AI Lab memo
.       CSM for CS memo
. date defaults to today,
. addressee contains "↓" wherever you want a CRLF,
. from defaults to standard name
. subject may be omitted
.
. CB "title"; prints a centered boldface title;
. SGN  generates  a signature line.
.
. After "∞" comes "Dear so-and-so:".
. After text of letter, put
.SGN	(which generates signature line).
. >>
.
.TURN ON "%{α"
.bottom←53;
.device xgp;
.  page frame bottom high 85 wide
.  title area heading lines 1 to 10 char 1 to 80;
.  area text lines 4 to bottom char 1 to 80;
.
.  font 1 "basl30"; font 2 "basi30"; font 3 "basb30";
.  AT "ffi" ⊂ IF 0<THISFONT≤3 THEN "≠"  ELSE "fαfαi" ⊃;
.  AT "ffl" ⊂ IF 0<THISFONT≤3 THEN "α∞" ELSE "fαfαl" ⊃;
.  AT "ff"  ⊂ IF 0<THISFONT≤3 THEN "≥"  ELSE "fαf" ⊃;
.  AT "fi"  ⊂ IF 0<THISFONT≤3 THEN "α≡" ELSE "fαi" ⊃;
.  AT "fl"  ⊂ IF 0<THISFONT≤3 THEN "∨"  ELSE "fαl" ⊃;
.  AT "--"  ⊂ IF 0<THISFONT≤3 THEN "¬" ELSE "-α-" ⊃;
.
.fntlst←"456789ABCDEFG";
.n←0;			<< font # gensym >>
.recursive macro defont(fnm);	⊂ start
.  if declaration(fnm)=0 then start
.    n←n+1;	fnm←fnt←fntlst[n];
.    font fnt "fnm";
.    end
.   else fnt←fnm;
.  end ⊃;
.
.at "↓";	⊂ }
.⊃;
.
.macro letter(data);	⊂
.<< namad = date$to$from$subject$file>>
.ODDLEFTBORDER←EVENLEFTBORDER←1000;
.every heading();
.if going=0 then going←1 else next page;
.nofill;
.count page from 2;
.sss←"data";  foo←scan(sss," ","","XR");  dat←scan(sss,"$","","is");
.xxx←namad←scan(sss,"$","","IS");
.zzz←scan(xxx,"↓","","IS");	if 2<length(xxx)<5 then namad←zzz&"↓"&eval(xxx);
.author←scan(sss,"$","","is");
.subject←scan(sss,"$","","is");	file←sss;
.place heading;
. ⊃
.
.macro head(spc,aut);	⊂ place text; nofill; select 1; group skip spc;
.(namad)}

.subj;
.fill adjust;
.every heading(%3{dat},,Page {page!});
.author←"aut";
.⊃
.
.macro memo(spc,aut);	⊂ place text; begin "memo"
.fill; nojust; indent 0,8; crbreak; tabs 9; turn on "\%"; preface 0; group skip spc;
.xxx←namad;  nam←scan(xxx,"↓");
%3To:\%1{nam}
.skip;
%3From:\%1{(if length("aut")>1 then "aut" else author)}
.end "memo";
.subj;
.fill adjust;
.every heading(%3{dat},,Page {page!});
.⊃
.
.macro subj;	⊂
.fill adjust;
.if length(subject)>2 then BEGIN "subject" turn on "%∂"; nojust; indent 0,8;crbreak;
%3Subject:∂9%1{subject}

.end "subject";
.select 1;
.  ⊃
.
.macro ref ⊂ select 3; nojust; boldit;
References:
.count ref inline; at "⊗" ⊂next ref; ("["&ref&"]  ");⊃
.select 1; indent 0,8;
. ⊃
.
.macro sgn; ⊂ BEGIN "signed" nofill; group;narrow 50;
.SKIP;
Best regards,
.skip 3
{author}
.if length(file) then start defont("ngr20"); select fnt; narrow;
File: {file}
. end
.END "signed"; ⊃
.
.macro cb(head) ⊂ if lines<5 then next page else skip; once center; select 3
head

.⊃
.
.macro boldit ⊂ turn on "%";
.  at """" ⊂ (if thisfont=1 then "%3" else "%1") ⊃;
.  at "<" ⊂"%2"⊃; at ">" ⊂"%1"⊃;
.⊃
.
.at "∂AIL" data "∞"; ⊂
.letter(|data|)
.begin turn on "→"
.defont("STAN2");  defont("NGB25");  select stan2;
S{("%"&ngb25)}Artificial Intelligence Laboratory, STANFORD UNIVERSITY, Stanford, California 94305
Telephone 415 497-4971→{dat}
.  end
.head(4,|Les Earnest↓Associate Director, SAIL|);
.xgenlines←xgenlines-4;
.⊃
.
.at "∂CSL" data "∞"; ⊂
.letter(|data|)
.begin turn on "→"
.defont("STAN2");  defont("NGB25");  select stan2;
S{("%"&ngb25)}Computer Science Department, STANFORD UNIVERSITY, Stanford, California 94305
→{dat}
.  end
.head(4,|Les Earnest↓Associate Director, SAIL|);
.xgenlines←xgenlines-4;
.⊃
.
.AT "∂AIM" data "∞"	⊂
.letter("data");
.defont("micr25");  defont("ngb30");
.SELECT micr25; CENTER; preface 0;
OFFICE MEMORANDUM  *  STANFORD UNIVERSITY  *  OFFICE MEMORANDUM
.SKIP; SELECT ngb30;
STANFORD ARTIFICIAL INTELLIGENCE LABORATORY
.SELECT 3; SKIP;
{DAT}
.memo(4,"Les Earnest, Associate Director, SAIL");
.⊃
.
.AT "∂CSM" data "∞"	⊂
.letter("data");
.defont("micr25");  defont("ngb30");
.SELECT micr25; CENTER;
OFFICE MEMORANDUM  *  STANFORD UNIVERSITY  *  OFFICE MEMORANDUM
.SKIP; SELECT ngb30;
COMPUTER SCIENCE DEPARTMENT
.SELECT 3; SKIP;
{DAT}
.memo(3,"Les Earnest, Senior Research Associate");
.⊃
.at "∂HOM" data "∞"	⊂
.letter(|data|);
.defont("micr25");
.center;select micr25;
Les Earnest, 12769 Dianne Drive, Los Altos Hills, California 94022
Telephone: (work) 415 497-4202, (home) 415 941-3984
.SELECT 3; SKIP;
{dat}
.head(4,|Les Earnest|);
.⊃
.going←0;
.portion main;  place text;
.preface 1;
.if declaration(super!)=0 then start "mfile"
.  require "m" source_file;
.  end "mfile"